package ar.com.larreta.grilla.client.ventanas;

import ar.com.larreta.grilla.client.Grilla;
import ar.com.larreta.intercambio.client.comunes.Direccion;
import ar.com.larreta.intercambio.client.comunes.Email;
import ar.com.larreta.intercambio.client.comunes.ListaDeTiposDeEmails;
import ar.com.larreta.vista.client.BarraHerramientas;
import ar.com.larreta.vista.client.CajaDeTexto;
import ar.com.larreta.vista.client.Estado;
import ar.com.larreta.vista.client.ListaDesplegable;
import ar.com.larreta.vista.client.Mensajes;
import ar.com.larreta.vista.client.Ventana;

import com.extjs.gxt.ui.client.widget.toolbar.ToolBar;

public class VentanaEmails extends Ventana {

	public static final Integer TAMANIO_TEXTO_MENSAJE = 200;
	
	private ListaDesplegable tipoEmail;
	private CajaDeTexto email;
	private Grilla grilla;
	
	private Email emailModelData;
	
	public void setEmailModelData(Email emailModelData) {
		this.emailModelData = emailModelData;
	}

	public VentanaEmails(Grilla grilla) {
		super(Mensajes.getInstancia().get("msg.emails"), "");
		
		this.grilla = grilla;
		
		barraHerramientas = new BarraHerramientas(this, getAnchoVentana(), 25);
		add(barraHerramientas);
		
		setHeight(110);
		
		setModal(Boolean.TRUE);
		
		tipoEmail = new ListaDesplegable(Mensajes.getInstancia().get("msg.tipoemail"), null, new ListaDeTiposDeEmails(), "listaTipoEmails");
		registrarCampo(tipoEmail.getCampoDesplegable());
		add(tipoEmail.getHorizontal());
		
		
		email = new CajaDeTexto(Mensajes.getInstancia().get("msg.email"), null);
		email.getCampoTexto().setWidth(TAMANIO_TEXTO_MENSAJE);
		email.getCampoTexto().setAllowBlank(Boolean.FALSE);
		registrarCampo(email.getCampoTexto());
		add(email.getHorizontal());
		
	}
	
	public void cancelando(){
		cambiarEstadoACreacion();
		this.hide();
	}

	public void confirmando(){
		if (esValido()) {
			if (estado.equals(Estado.CREACION)){
				emailModelData = new Email();
			}
			
			emailModelData.setTipoEmail(tipoEmail.getCampoDesplegable().getValue());
			emailModelData.setEmail((String) email.getCampoTexto().getValue());
			
			if (estado.equals(Estado.CREACION)){
				grilla.agregarDato(emailModelData);
			}
			
			grilla.load();
			this.hide();
		}
	}

	public ListaDesplegable getTipoEmail() {
		return tipoEmail;
	}

	public CajaDeTexto getEmail() {
		return email;
	}
}
